package com.bsoft.gol.hcs.utils;

import com.timevale.esign.sdk.tech.bean.result.Result;
import com.timevale.esign.sdk.tech.v3.client.ServiceClientManager;
import com.timevale.tech.sdk.bean.HttpConnectionConfig;
import com.timevale.tech.sdk.bean.ProjectConfig;
import com.timevale.tech.sdk.bean.SignatureConfig;
import com.timevale.tech.sdk.constants.AlgorithmType;
import com.timevale.tech.sdk.constants.HttpType;

/**
 * Created on 2020/6/1 0001.
 *
 * @author Marvin Yang
 */
public class Eqb {
    static Result rst = ServiceClientManager.registClient(getProjectCfg(), getHttpConCfg(), getSignatureCfg());

    public static void main(String[] args) {
        // 注册客户端结果
        if (rst.getErrCode() != 0) {
            System.out.println("注册客户端失败：" + rst.getMsg());
        } else {
            System.out.println("注册客户端成功");
        }



    }

    /**
     *
     * description 进行项目配置，如果是测试环境，请联系E签宝交付顾问获取
     */
    public static ProjectConfig getProjectCfg() {
        ProjectConfig proCfg = new ProjectConfig();
        // 项目ID（应用ID）
        proCfg.setProjectId("7438804062");
        // 项目Secret(应用Secret)
        proCfg.setProjectSecret("2c9c44c93527164591e9bf5d225a3179");
        // 开放平台地址
        // 需要添加ip白名单，而且添加之后需要等五分钟之后才能生效，否则会报错：接口调用方尚未配置ip白名单，请联系e签宝管理员配置
        // 正式环境请求地址：http://openapi.tsign.cn:8080/tgmonitor/rest/app!getAPIInfo2
        // 测试环境请求地址：http://smlitsm.tsign.cn:8080/tgmonitor/rest/app!getAPIInfo2
        proCfg.setItsmApiUrl("http://smlitsm.tsign.cn:8080/tgmonitor/rest/app!getAPIInfo2");
        return proCfg;
    }

    /**
     *
     * description http配置
     */
    public static HttpConnectionConfig getHttpConCfg() {
        HttpConnectionConfig httpConCfg = new HttpConnectionConfig();
        // 代理服务IP配置
        httpConCfg.setProxyIp(null);
        // 代理服务端口
        httpConCfg.setProxyPort(null);
        // 协议类型，默认Https
        httpConCfg.setHttpType(HttpType.HTTPS);
        // 请求失败重试次数，默认5次
        httpConCfg.setRetry(null);
        //连接超时时间配置，最大不能超过30秒
        httpConCfg.setTimeoutConnect(30);
        // 请求超时时间，最大不能超过30
        httpConCfg.setTimeoutRequest(30);
        // 代理服务器登录用户名
        httpConCfg.setUsername(null);
        // 代理服务器登录密码
        httpConCfg.setPassword(null);
        return httpConCfg;
    }

    /**
     * description 签名配置
     */
    public static SignatureConfig getSignatureCfg() {
        SignatureConfig signCfg = new SignatureConfig();
        signCfg.setAlgorithm(AlgorithmType.HMACSHA256);

        // 若算法类型是RSA，需要设置e签宝公钥和平台私钥
		/*signCfg.setEsignPublicKey(null);
		signCfg.setPrivateKey(null);*/

        return signCfg;
    }
}
